﻿using gixoom.Dom.Block;
using gixoom.Dom.Score;
using gixoom.Dom.Storage.Block;
using gixoom.Dom.Storage.File;

namespace gixoom.Dom
{
    public interface IgixoomDomFacade
    {
        /// <summary>
        /// Returns score facade.
        /// </summary>
        /// <returns>score facade</returns>
        IScoreFacade GetScoreFacade();

        /// <summary>
        /// Returns block facade.
        /// </summary>
        /// <returns>block facade</returns>
        IBlockFacade GetBlockFacade();

        /// <summary>
        /// Returns file storage facade.
        /// </summary>
        /// <returns>file storage facade</returns>
        IFileStorageFacade GetFileStorageFacade();

        /// <summary>
        /// Returns block storage facade.
        /// </summary>
        /// <returns>block storage facade</returns>
        IBlockStorageFacade GetBlockStorageFacade();
    }
}
